home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / PasswordView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  2.6 KB  |  95 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Rectangle;
  8. import java.awt.Shape;
  9. import javax.swing.JPasswordField;
  10. import javax.swing.text.Position.Bias;
  11.  
  12. public class PasswordView extends FieldView {
  13.    static char[] ONE = new char[1];
  14.  
  15.    public PasswordView(Element var1) {
  16.       super(var1);
  17.    }
  18.  
  19.    protected int drawEchoCharacter(Graphics var1, int var2, int var3, char var4) {
  20.       ONE[0] = var4;
  21.       var1.drawChars(ONE, 0, 1, var2, var3);
  22.       return var2 + var1.getFontMetrics().charWidth(var4);
  23.    }
  24.  
  25.    protected int drawSelectedText(Graphics var1, int var2, int var3, int var4, int var5) throws BadLocationException {
  26.       var1.setColor(super.selected);
  27.       Container var6 = ((View)this).getContainer();
  28.       if (var6 instanceof JPasswordField) {
  29.          JPasswordField var7 = (JPasswordField)var6;
  30.          var1.setColor(((JTextComponent)var7).getSelectedTextColor());
  31.          char var8 = var7.getEchoChar();
  32.          int var9 = var5 - var4;
  33.  
  34.          for(int var10 = 0; var10 < var9; ++var10) {
  35.             var2 = this.drawEchoCharacter(var1, var2, var3, var8);
  36.          }
  37.       }
  38.  
  39.       return var2;
  40.    }
  41.  
  42.    protected int drawUnselectedText(Graphics var1, int var2, int var3, int var4, int var5) throws BadLocationException {
  43.       Container var6 = ((View)this).getContainer();
  44.       if (var6 instanceof JPasswordField) {
  45.          JPasswordField var7 = (JPasswordField)var6;
  46.          var1.setColor(((Component)var7).getForeground());
  47.          char var8 = var7.getEchoChar();
  48.          int var9 = var5 - var4;
  49.  
  50.          for(int var10 = 0; var10 < var9; ++var10) {
  51.             var2 = this.drawEchoCharacter(var1, var2, var3, var8);
  52.          }
  53.       }
  54.  
  55.       return var2;
  56.    }
  57.  
  58.    public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
  59.       Container var4 = ((View)this).getContainer();
  60.       if (var4 instanceof JPasswordField) {
  61.          JPasswordField var5 = (JPasswordField)var4;
  62.          char var6 = var5.getEchoChar();
  63.          FontMetrics var7 = ((Component)var5).getFontMetrics(((Component)var5).getFont());
  64.          Rectangle var8 = ((FieldView)this).adjustAllocation(var2).getBounds();
  65.          int var9 = (var1 - ((View)this).getStartOffset()) * var7.charWidth(var6);
  66.          var8.x += var9;
  67.          var8.width = 1;
  68.          return var8;
  69.       } else {
  70.          return null;
  71.       }
  72.    }
  73.  
  74.    public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
  75.       var4[0] = Bias.Forward;
  76.       int var5 = 0;
  77.       Container var6 = ((View)this).getContainer();
  78.       if (var6 instanceof JPasswordField) {
  79.          JPasswordField var7 = (JPasswordField)var6;
  80.          char var8 = var7.getEchoChar();
  81.          FontMetrics var9 = ((Component)var7).getFontMetrics(((Component)var7).getFont());
  82.          var3 = ((FieldView)this).adjustAllocation(var3);
  83.          Rectangle var10 = var3 instanceof Rectangle ? (Rectangle)var3 : var3.getBounds();
  84.          var5 = ((int)var1 - var10.x) / var9.charWidth(var8);
  85.          if (var5 < 0) {
  86.             var5 = 0;
  87.          } else if (var5 > ((View)this).getStartOffset() + ((View)this).getDocument().getLength()) {
  88.             var5 = ((View)this).getDocument().getLength() - ((View)this).getStartOffset();
  89.          }
  90.       }
  91.  
  92.       return ((View)this).getStartOffset() + var5;
  93.    }
  94. }
  95.